package Entities;
import java.util.Set;
//import java.util.Set;
public interface BankInterface {
/**
* Method used for creating an account for a person
*
* @param p
* Person -> account holder
* @param assocAcc
* Account
*
* @invariant isWellFormed
* @pre p!=NULL, assocAcc!=NULL
*
* @post size = size@pre + 1
* @invariant isWellFormed
*/
public void addAccForPerson(Person p, Account assocAcc);
/**
* Method used in order to deposit a sum to an account
*
* @param p Person -> account holder
*
* @param assocAcc
* Account
* @param sum
* Sum to be deposit to account
*
* @invariant isWellFormed
* @pre p!=NULL, accId != 0, sum > 0
*
* @post initialMoney < afterDepositMoney
* @invariant isWellFormed
*/
public void depositMoney(double sum, int accId, Person p);
/**
* Method used in order to withdraw a sum from an account
*
* * @param p Person -> account holder
*
* @param assocAcc
* Account
* @param sum
* Sum to be withdrawn from account
*
* @invariant isWellFormed
* @pre p!=NULL, accId != 0, sum > 0
*
* @post initialMoney > afterWithdrawalMoney
* @invariant isWellFormed
*/
public void withdrawMoney(double sum, int accId, Person p);
/**
* Method used in order to delete a person and all the corresponding
* accounts
*
* * @param p
* Person -> account holder
*
* @invariant isWellFormed
* @pre p!=NULL
*
* @post initialSize > afterDeleteSize
* @invariant isWellFormed
*/
public void deletePerson(Person p);
/**
* Method used in order to delete an account of a given person
*
* @param p
* Person -> account holder
* @param assocAcc
* Account
*
* @invariant isWellFormed
* @pre p!=NULL, accId != 0
*
* @post initialSize > afterDeleteSize
* @invariant isWellFormed
*/
public void deleteAccount(int accId, Person p);
public Set<Person> findAllPersons();
public Set<Account> findAllAccounts();
}